<?php
class class_historiasClinicas {
	private $_db; 
	function __construct(){
		$this->config();
	}
	function method_getPaciente($params, $error){
		$dni = $params[0]->dni;
		$this->_db->setQuery("
			SELECT CONCAT(pacientes.apellido, ', ', pacientes.nombres) as nombre, telefono1,
			DATE_FORMAT(fecha_nacimiento,'%d/%m/%Y') AS fecha_nacimiento,YEAR(CURDATE())-YEAR(pacientes.fecha_nacimiento) 
			+ IF(DATE_FORMAT(CURDATE(),'%m-%d') > DATE_FORMAT(pacientes.fecha_nacimiento,'%m-%d'), 0, -1) AS edad ,
			(SELECT (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) 
			FROM planes 
			INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
			INNER JOIN pacientes ON planes.cod_plan = pacientes.cod_plan1 WHERE dni_paciente ='".$dni."' LIMIT 1) AS plan1,
			nro_afiliado1, 
			(SELECT (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) 
			FROM planes 
			INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
			INNER JOIN pacientes ON planes.cod_plan = pacientes.cod_plan2 WHERE dni_paciente ='".$dni."' LIMIT 1) AS plan2,						 
			nro_afiliado2, 
			nro_historia_clinica,
			(CASE pacientes.origen
				WHEN 'P' THEN 'Personal'
				WHEN 'C' THEN 'Caraffa'
				WHEN 'O' THEN 'Policlinico'
				ELSE ''
			END) as origen,
			CONCAT(usuarios.apellido, ', ', usuarios.nombres) as pertenece
			FROM pacientes 
			LEFT JOIN usuarios USING(dni_usuario)
			WHERE dni_paciente ='".$dni."' LIMIT 1");
//
//			SELECT CONCAT(apellido, ', ', nombres) as nombre, 
//			DATE_FORMAT(fecha_nacimiento,'%d/%m/%Y') AS fecha_nacimiento,YEAR(CURDATE())-YEAR(pacientes.fecha_nacimiento) 
//			+ IF(DATE_FORMAT(CURDATE(),'%m-%d') > DATE_FORMAT(pacientes.fecha_nacimiento,'%m-%d'), 0, -1) AS edad ,
//			(SELECT (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) AS plan1 
//			FROM planes 
//			INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
//			INNER JOIN pacientes ON planes.cod_plan = pacientes.cod_plan1 LIMIT 1) AS plan1,
//			nro_afiliado1,(SELECT (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) AS plan2 
//			FROM planes INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social 
//			INNER JOIN pacientes ON planes.cod_plan = pacientes.cod_plan2 LIMIT 1) AS plan2,
//			nro_afiliado2, nro_historia_clinica 
//			FROM pacientes 
//			WHERE dni_paciente ='".$dni."' LIMIT 1");		
		
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 3) . ": " . mysql_error())); return $error; }
		$result = $this->_db->loadResult();
		return $result[0];
	}
	function method_getDatos($params, $error){
		$dni = $params[0]->dni;
		$this->_db->setQuery("
			SELECT turnos.fecha_asignada AS orden, 
			fecha,
			turnos.cod_turno, 
			clinicas.descripcion AS clinica,
			pacientes_atendidos.observaciones, 
			usuarios.usuario AS medico, 
			planes.descripcion AS plan 
			FROM pacientes_atendidos 
			LEFT JOIN turnos ON pacientes_atendidos.cod_turno = turnos.cod_turno 
			LEFT JOIN pacientes ON pacientes.dni_paciente = turnos.dni_paciente 
			LEFT JOIN usuarios ON usuarios.dni_usuario = turnos.dni_usuario 
			LEFT JOIN planes ON planes.cod_plan = turnos.cod_plan
			LEFT JOIN clinicas ON clinicas.cod_clinica = turnos.cod_clinica 
			WHERE pacientes.dni_paciente ='".$dni."'");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 3) . ": " . mysql_error())); return $error; }
		$result="";
		$result->values = array();
		$regs = $this->_db->loadResult();
		$row = array();
    	FOREACH ($regs as $reg)
		{
			array_push($row, $reg->orden);
			array_push($row, $reg->fecha);
			array_push($row, $this->_getDatosCargadosOS($reg->cod_turno));
			array_push($row, $reg->observaciones);
			array_push($row, $reg->medico);
			array_push($row, $reg->plan);
			array_push($row, $reg->clinica);
			array_push($result->values, $row);
			$row = array();
		}
		$this->_db->setQuery("SELECT pacientes_notas.fecha_suceso AS orden, 
								fecha_suceso,
								CONCAT('Nota: ', tipos_pacientes_notas.descripcion) AS motivo, 
								pacientes_notas.descripcion, usuarios.usuario, 
								planes.descripcion AS plan 
								FROM pacientes_notas 
								LEFT JOIN tipos_pacientes_notas ON pacientes_notas.cod_tipo_paciente_nota= tipos_pacientes_notas.cod_tipo_paciente_nota 
								LEFT JOIN planes ON planes.cod_plan = pacientes_notas.cod_plan 
								LEFT JOIN usuarios ON usuarios.dni_usuario = pacientes_notas.dni_usuario
								WHERE pacientes_notas.dni_paciente ='".$dni."'");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 3) . ": " . mysql_error())); return $error; }
		
		$regs = $this->_db->loadResult();
		$row = array();
    	FOREACH ($regs as $reg)
		{
			array_push($row, $reg->orden);
			array_push($row, $reg->fecha_suceso);
			array_push($row, $reg->motivo);
			array_push($row, $reg->descripcion);
			array_push($row, $reg->usuario);
			array_push($row, $reg->plan);
			array_push($result->values, $row);
			$row = array();
		}
		
		return $result;
	}
		
	private function _getDatosCargadosOS($codTurno)
    {
/*     	$this->_db->setQuery("SELECT (IFNULL(CONCAT('os_', (SELECT tabla FROM obras_sociales INNER JOIN planes ON obras_sociales.cod_obra_social = planes.cod_obra_social WHERE planes.cod_plan = turnos.cod_plan)), 'os_contado' )) AS tabla FROM turnos WHERE cod_turno = '" . $codTurno . "'");
		$this->_db->alter(); if (mysql_error()) { return false; }
		
    	$turnos = $this->_db->loadResult();
        
		$result = ""; */
		
		$this->_db->setQuery("
			SELECT CONCAT(prestaciones_rubros.descripcion,', ', prestaciones.descripcion) AS descripcion 
			FROM pacientes_atendidos
			INNER JOIN prestaciones ON pacientes_atendidos.cod_prestacion = prestaciones.cod_prestacion 
			LEFT JOIN prestaciones_rubros ON prestaciones.cod_prestacion_rubro = prestaciones_rubros.cod_prestacion_rubro 
			WHERE cod_turno = '" . $codTurno . "'
		");
		$this->_db->alter(); if (mysql_error()) { return false; }
		$datos = $this->_db->loadResult();
		
		$result = $datos[0]->descripcion;
		
		return $result;
    }
	function method_tiposNotas(){
		$this->_db->setQuery("SELECT cod_tipo_paciente_nota AS value, descripcion AS label FROM tipos_pacientes_notas");
		$this->_db->alter();
		$result = $this->_db->loadResult();
		return $result;
	}
	function method_planes($params, $error){
		$this->_db->setQuery("SELECT cod_plan as value, (CONCAT(obras_sociales.descripcion, ' - ', planes.descripcion)) as label FROM planes INNER JOIN obras_sociales ON planes.cod_obra_social = obras_sociales.cod_obra_social INNER JOIN pacientes ON (planes.cod_plan = pacientes.cod_plan1 OR planes.cod_plan = pacientes.cod_plan2) AND pacientes.dni_paciente = '" . $params[0]->dni_paciente . "'");
		$this->_db->alter();
		
		$regs = $this->_db->loadResult();
		$result=array();
		$row="";
		$row->value= "0";
		$row->label= "Contado";
		array_push($result, $row);
    	FOREACH ($regs as $reg)
		{
			array_push($result, $reg);
			$row="";
		}
		return $result;
	}	
	
	function method_addNota($params, $error){
		$this->_db->setQuery("INSERT INTO pacientes_notas (dni_paciente, cod_tipo_paciente_nota, fecha_suceso, fecha_carga, descripcion, cod_plan, dni_usuario) VALUES ('".$params[0]->dni_paciente."','".$params[0]->cod_tipo_paciente_nota."','".$params[0]->fecha_suceso."',NOW(), '".$params[0]->descripcion."', '".$params[0]->cod_plan."', '".$_SESSION['dni_usuario']."')");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
	}
    function method_getPacientesEncontrados($params, $error)
    {
    	if ($params[0]->filtro == 'D')
    		$filtro = "WHERE pacientes.dni_paciente LIKE '%" . $params[0]->buscar . "%'";
    	else
    		$filtro = "WHERE CONCAT(pacientes.apellido, ', ', pacientes.nombres) LIKE '%" . $params[0]->buscar . "%'";
    	
		$this->_db->setQuery("
			SELECT pacientes.dni_paciente,CONCAT(pacientes.apellido, ', ', pacientes.nombres) as nombre,
			(SELECT 
				DATE_FORMAT(turnos.fecha_asignada,'%d/%m/%Y')  
				FROM turnos 
				WHERE estado = 'A' 
				AND turnos.dni_paciente = pacientes.dni_paciente 
				ORDER BY DATE_FORMAT(fecha_asignada ,'%d/%m/%Y') 
				DESC LIMIT 1
			) AS ultima_visita 
			FROM pacientes 
			" .$filtro. "
			");
        $this->_db->alter();
    	if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
    	
    	$regs = $this->_db->loadResult();
		$result = array();
		FOREACH ($regs as $reg)
		{
			$row = array();
			array_push($row, $reg->dni_paciente);
			array_push($row, $reg->nombre);
			array_push($row, $reg->ultima_visita);
			array_push($result, $row);
		}
		return $result;
    }
	private function config(){
		require_once("conexion.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		$this->suc = $SUCURSAL;
		mysql_query("SET NAMES utf8");
	}
	
}
?>